﻿namespace WMS6.Web.CommonMethodServiceRef
{
    using System;
    using System.CodeDom.Compiler;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Diagnostics;
    using System.Runtime.CompilerServices;
    using System.Runtime.Serialization;

    [Serializable, GeneratedCode("System.Runtime.Serialization", "3.0.0.0"), DebuggerStepThrough, DataContract(Name="VisualLocationInfo", Namespace="http://schemas.datacontract.org/2004/07/WMS6.DataEntity")]
    public class VisualLocationInfo : IExtensibleDataObject, INotifyPropertyChanged
    {
        [OptionalField]
        private double CubeField;
        [OptionalField]
        private double CubicCapacityField;
        [OptionalField]
        private double CubicCountField;
        [NonSerialized]
        private ExtensionDataObject extensionDataField;
        [OptionalField]
        private double HeightField;
        [OptionalField]
        private List<InvLotLocLpnInfo> InvLotLocLpnInfosField;
        [OptionalField]
        private double LengthField;
        [OptionalField]
        private string LocCategoryField;
        [OptionalField]
        private string LocField;
        [OptionalField]
        private string LocFlagField;
        [OptionalField]
        private string LocHandlingField;
        [OptionalField]
        private string LocUsageField;
        [OptionalField]
        private string StatusField;
        [OptionalField]
        private double WeightCapacityField;
        [OptionalField]
        private string WhIDField;
        [OptionalField]
        private double WidthField;
        [OptionalField]
        private string ZoneIDField;

        public event PropertyChangedEventHandler PropertyChanged;

        protected void RaisePropertyChanged(string propertyName)
        {
            PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if (propertyChanged != null)
            {
                propertyChanged(this, new PropertyChangedEventArgs(propertyName));
            }
        }

        [DataMember]
        public double Cube
        {
            get
            {
                return this.CubeField;
            }
            set
            {
                if (!this.CubeField.Equals(value))
                {
                    this.CubeField = value;
                    this.RaisePropertyChanged("Cube");
                }
            }
        }

        [DataMember]
        public double CubicCapacity
        {
            get
            {
                return this.CubicCapacityField;
            }
            set
            {
                if (!this.CubicCapacityField.Equals(value))
                {
                    this.CubicCapacityField = value;
                    this.RaisePropertyChanged("CubicCapacity");
                }
            }
        }

        [DataMember]
        public double CubicCount
        {
            get
            {
                return this.CubicCountField;
            }
            set
            {
                if (!this.CubicCountField.Equals(value))
                {
                    this.CubicCountField = value;
                    this.RaisePropertyChanged("CubicCount");
                }
            }
        }

        [Browsable(false)]
        public ExtensionDataObject ExtensionData
        {
            get
            {
                return this.extensionDataField;
            }
            set
            {
                this.extensionDataField = value;
            }
        }

        [DataMember]
        public double Height
        {
            get
            {
                return this.HeightField;
            }
            set
            {
                if (!this.HeightField.Equals(value))
                {
                    this.HeightField = value;
                    this.RaisePropertyChanged("Height");
                }
            }
        }

        [DataMember]
        public List<InvLotLocLpnInfo> InvLotLocLpnInfos
        {
            get
            {
                return this.InvLotLocLpnInfosField;
            }
            set
            {
                if (!object.ReferenceEquals(this.InvLotLocLpnInfosField, value))
                {
                    this.InvLotLocLpnInfosField = value;
                    this.RaisePropertyChanged("InvLotLocLpnInfos");
                }
            }
        }

        [DataMember]
        public double Length
        {
            get
            {
                return this.LengthField;
            }
            set
            {
                if (!this.LengthField.Equals(value))
                {
                    this.LengthField = value;
                    this.RaisePropertyChanged("Length");
                }
            }
        }

        [DataMember]
        public string Loc
        {
            get
            {
                return this.LocField;
            }
            set
            {
                if (!object.ReferenceEquals(this.LocField, value))
                {
                    this.LocField = value;
                    this.RaisePropertyChanged("Loc");
                }
            }
        }

        [DataMember]
        public string LocCategory
        {
            get
            {
                return this.LocCategoryField;
            }
            set
            {
                if (!object.ReferenceEquals(this.LocCategoryField, value))
                {
                    this.LocCategoryField = value;
                    this.RaisePropertyChanged("LocCategory");
                }
            }
        }

        [DataMember]
        public string LocFlag
        {
            get
            {
                return this.LocFlagField;
            }
            set
            {
                if (!object.ReferenceEquals(this.LocFlagField, value))
                {
                    this.LocFlagField = value;
                    this.RaisePropertyChanged("LocFlag");
                }
            }
        }

        [DataMember]
        public string LocHandling
        {
            get
            {
                return this.LocHandlingField;
            }
            set
            {
                if (!object.ReferenceEquals(this.LocHandlingField, value))
                {
                    this.LocHandlingField = value;
                    this.RaisePropertyChanged("LocHandling");
                }
            }
        }

        [DataMember]
        public string LocUsage
        {
            get
            {
                return this.LocUsageField;
            }
            set
            {
                if (!object.ReferenceEquals(this.LocUsageField, value))
                {
                    this.LocUsageField = value;
                    this.RaisePropertyChanged("LocUsage");
                }
            }
        }

        [DataMember]
        public string Status
        {
            get
            {
                return this.StatusField;
            }
            set
            {
                if (!object.ReferenceEquals(this.StatusField, value))
                {
                    this.StatusField = value;
                    this.RaisePropertyChanged("Status");
                }
            }
        }

        [DataMember]
        public double WeightCapacity
        {
            get
            {
                return this.WeightCapacityField;
            }
            set
            {
                if (!this.WeightCapacityField.Equals(value))
                {
                    this.WeightCapacityField = value;
                    this.RaisePropertyChanged("WeightCapacity");
                }
            }
        }

        [DataMember]
        public string WhID
        {
            get
            {
                return this.WhIDField;
            }
            set
            {
                if (!object.ReferenceEquals(this.WhIDField, value))
                {
                    this.WhIDField = value;
                    this.RaisePropertyChanged("WhID");
                }
            }
        }

        [DataMember]
        public double Width
        {
            get
            {
                return this.WidthField;
            }
            set
            {
                if (!this.WidthField.Equals(value))
                {
                    this.WidthField = value;
                    this.RaisePropertyChanged("Width");
                }
            }
        }

        [DataMember]
        public string ZoneID
        {
            get
            {
                return this.ZoneIDField;
            }
            set
            {
                if (!object.ReferenceEquals(this.ZoneIDField, value))
                {
                    this.ZoneIDField = value;
                    this.RaisePropertyChanged("ZoneID");
                }
            }
        }
    }
}

